<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<script>
		// let arr = [{name: 'zs'}]
		// let arr1 =[{name: 'ls'}]
		// arr = [...arr1]
		// console.log(arr[0]);
		// arr1[0].name = 'ww'
		// console.log(arr[0]);

		// 浅拷贝 
		// 1.简单的赋值
		// let a = 1 
		// let b = a 
		// b = 10
		// console.log(a);
		// console.log(b);
		// 2.复杂数据类型的赋值, 浅拷贝
		// let arr = [1, 2, 3, 4]
		// let Array = arr 
		// Array.push(100)
		// console.log(Array);
		// console.log(arr);
		// 3. Object.assign({},源数据) 如果合并的值都是基本数据类型, 深拷贝, 值涉及到复杂数据类型, 也是浅拷贝
		// let obj = {a: [10, 20], b: 2}
		// const res = Object.assign({}, obj)
		// res.a[0] = 10000
		// console.log(res);
		// console.log(obj);
		// 4. 展开运算符 基本数据类型是深拷贝,复杂数据类型是浅拷贝
		// let a = [{k: 'anta'},456,789]
		// let b = [...a]
		// console.log(a[0]);
		// b[0].k = 'xtebu'
		// console.log(a[0]);
		// console.log(b);

		// 深拷贝

		// JSON.parse 和 JSON.stringify 
		let a = [{k: 'anta'},456,789]
	  let result =	JSON.parse(JSON.stringify(a)) 
	  console.log(a);
	  result[0].k = 'hahaha'
	  console.log(result);

		// 借助库  工具  
		// jQuery  $.extend(true, {}, originItem);
		// lodash _.cloneDeep()
		// 原生js递归实现
	</script>
</body>
</html>